32 research outputs found

    Implantations distribuées de modÚles à base de composants communicants par interactions multiparties avec priorités : application au langage BIP

    Get PDF
    Distributed software is often required for new systems, because of efficiency and physical distribution and sensors and actuators. Ensuring correctness of a distributed implementation is hard due to the interleaving of actions belonging to distinct processes. This thesis proposes a method for generating a correct and efficient distributed implementation from a high-level model of an application. The input model is described as a set of components communicating through prioritized multiparty interactions. Such primitives change the state of all components involved in an interaction during a single atomic execution step. We assume that a distributed implementation is a set of processes communicating through asynchronous message-passing. The main challenge is to produce a correct and efficient distributed implementation of prioritized multiparty interactions, relying only on message-passing. The method relies on a rigorous design flow refining the high-level model of the application into a low-level model, from which code for a given platform is generated. All intermediate models appearing in the flow are expressed using the same semantics as the input model. Complex interactions are replaced with constructs using simpler interactions at each step of the design flow. In particular, the last model obtained before code generation contains only interactions modeling asynchronous message passing. The correctness of the implementation is obtained by construction. Using multiparty interaction reduces drastically the set of reachable states, compared to an equivalent model expressed with lower level primitives. Essential properties of the system are checked at this abstraction level. Each transformation of the design flow is simple enough to be fully formalized and proved by showing observational equivalence or trace equivalence between the input and output models. The obtained implementation is correct with respect to the original model, which avoids an expensive a posteriori verification. Performance can be optimized through adequate choice of the transformation parameters, or by augmenting the knowledge of components. The latter solution requires to analyze the original model to compute the knowledge, that is reused at subsequent steps of the decentralization. The various transformations and optimizations constituting the design flow have been implemented using the BIP framework. The implementation has been used to evaluate the different possibilities, as well the influence of parameters of the design flow, on several examples. The generated code uses either Unix sockets, MPI or pthreads primitives for communication between processes.Les nouveaux systĂšmes ont souvent recours Ă  une implĂ©mentation distribuĂ©e du logiciel, pour des raisons d'efficacitĂ© et Ă  cause de l'emplacement physique de certains capteurs et actuateurs. S'assurer de la correction d'un logiciel distribuĂ© est difficile car cela impose de considĂ©rer tous les enchevĂȘtrements possibles des actions exĂ©cutĂ©es par des processus distincts. Cette thĂšse propose une mĂ©thode pour gĂ©nĂ©rer, Ă  partir d'un modĂšle d'application haut niveau, une implĂ©mentation distribuĂ©e correcte et efficace. Le modĂšle de l'application comporte des composants communiquant au moyen d'interactions multiparties avec prioritĂ©s. L'exĂ©cution d'une interaction multipartie, qui correspond Ă  un pas de la sĂ©mantique, change de façon atomique l'Ă©tat de tous les composants participant Ă  l'interaction. On dĂ©finit une implantation distribuĂ©e comme un ensemble de processus communiquant par envoi de message asynchrone. La principale difficultĂ© est de produire une implĂ©mentation correcte et efficace des interactions multiparties avec prioritĂ©s, en utilisant uniquement l'envoi de message comme primitive. La mĂ©thode se fonde sur un flot de conception rigoureux qui raffine progressivement le modĂšle haut niveau en un modĂšle bas niveau, Ă  partir duquel le code pour une plateforme particuliĂšre est gĂ©nĂ©rĂ©. Tous les modĂšles intermĂ©diaires apparaissant dans le flot sont exprimĂ©s avec la mĂȘme sĂ©mantique que le modĂšle original. À chaque Ă©tape du flot, les interactions complexes sont remplacĂ©s par des constructions utilisant des interactions plus simples. En particulier, le dernier modĂšle obtenu avant la gĂ©nĂ©ration du code ne contient que des interactions modĂ©lisant l'envoi de message. La correction de l'implĂ©mentation est obtenue par construction. L'utilisation des interactions multiparties comme primitives dans le modĂšle de l'application permet de rĂ©duire trĂšs significativement l'ensemble des Ă©tats atteignables, par rapport Ă  un modĂšle Ă©quivalent mais utilisant des primitives de communication plus simples. Les propriĂ©tĂ©s essentielles du systĂšme sont vĂ©rifiĂ©es Ă  ce niveau d'abstraction. Chaque transformation constituante du flot de conception est suffisamment simple pour ĂȘtre complĂštement formalisĂ©e et prouvĂ©e, en termes d'Ă©quivalence observationelle ou d'Ă©quivalence de trace entre le modĂšles avant et aprĂšs transformation. L'implĂ©mentation ainsi obtenue est correcte par rapport au modĂšle original, ce qui Ă©vite une coĂ»teuse vĂ©rification a posteriori. Concernant l'efficacitĂ©, la performance de l'implĂ©mentation peut ĂȘtre optimisĂ©e en choisissant les paramĂštres adĂ©quats pour les transformations, ou en augmentant la connaissance des composants. Cette derniĂšre solution requiert une analyse du modĂšle de dĂ©part afin de calculer la connaissance qui est rĂ©utilisĂ©e pour les Ă©tapes ultĂ©rieures du flot de conception. Les diffĂ©rentes transformations et optimisations constituant le flot de conception ont Ă©tĂ© implĂ©mentĂ©es dans le cadre de BIP. Cette implĂ©mentation a permis d'Ă©valuer les diffĂ©rentes possibilitĂ©s ainsi que l'influence des diffĂ©rents paramĂštres, sur la performance de l'implĂ©mentation obtenue avec plusieurs exemples. Le code gĂ©nĂ©rĂ© utilise les primitives fournies par les sockets POSIX, MPI ou les pthreads pour envoyer des messages entre les processus

    Verification of interlocking systems using statistical model checking

    Get PDF
    In the railway domain, an interlocking is the system ensuring safe train traffic inside a station by controlling its active elements such as the signals or points. Modern interlockings are configured using particular data, called application data, reflecting the track layout and defining the actions that the interlocking can take. The safety of the train traffic relies thereby on application data correctness, errors inside them can cause safety issues such as derailments or collisions. Given the high level of safety required by such a system, its verification is a critical concern. In addition to the safety, an interlocking must also ensure that availability properties, stating that no train would be stopped forever in a station, are satisfied. Most of the research dealing with this verification relies on model checking. However, due to the state space explosion problem, this approach does not scale for large stations. More recently, a discrete event simulation approach limiting the verification to a set of likely scenarios, was proposed. The simulation enables the verification of larger stations, but with no proof that all the interesting scenarios are covered by the simulation. In this paper, we apply an intermediate statistical model checking approach, offering both the advantages of model checking and simulation. Even if exhaustiveness is not obtained, statistical model checking evaluates with a parametrizable confidence the reliability and the availability of the entire system.Comment: 12 pages, 3 figures, 2 table

    Dynamic Verification of SystemC with Statistical Model Checking

    Get PDF
    Many embedded and real-time systems have a inherent probabilistic behaviour (sensors data, unreliable hardware,...). In that context, it is crucial to evaluate system properties such as "the probability that a particular hardware fails". Such properties can be evaluated by using probabilistic model checking. However, this technique fails on models representing realistic embedded and real-time systems because of the state space explosion. To overcome this problem, we propose a verification framework based on Statistical Model Checking. Our framework is able to evaluate probabilistic and temporal properties on large systems modelled in SystemC, a standard system-level modelling language. It is fully implemented as an extension of the Plasma-lab statistical model checker. We illustrate our approach on a multi-lift system case study

    Optimized Distributed Implementation of Multiparty Interactions with Observation

    No full text
    International audienceUsing high level coordination primitives allows enhanced expressiveness of component-based frameworks to cope with the inherent complexity of present-day systems designs. Nonetheless, their distributed implementation raises multiple issues, regarding both the correctness and the runtime performance of the final implementation. We propose a novel approach for distributed implementation of multiparty interactions subject to scheduling constraints expressed by priorities. We rely on new composition operators and semantics that combine multiparty interactions with observation. We show that this model provides a natural encoding for priorities and moreover, can be used as an intermediate step towards provably correct and optimized distributed implementations

    Comparative Analysis of Leakage Tools on Scalable Case Studies

    Get PDF
    International audienceQuantitative security techniques have been proven effective to measure the security of systems against various types of attackers. However, such techniques are often tested against small-scale academic examples. In this paper we use analyze two scalable, real life privacy case studies: the privacy of the energy consumption data of the users of a smart grid network and the secrecy of the voters' voting preferences with different types of voting protocols. We analyze both case studies with three state-of-the-art information leakage computation tools: LeakWatch, Moped-QLeak, and our tool QUAIL equipped with a new trace analysis algorithm. We highlight the relative advantages and drawbacks of the tools and compare their usability and effectiveness in analyzing the case studies

    Model-based implementation of distributed systems with priorities

    No full text
    International audienceModel-based application development aims at increasing the application's integrity by using models employed in clearly defined transformation steps leading to correct-by-construction artifacts. In this paper, we introduce a novel model-based approach for constructing correct distributed implementation of component-based models constrained by priorities. We argue that model-based methods are especially of interest in the context of distributed embedded systems due to their inherent complexity (e.g., caused by non-deterministic nature of distributed systems). Our method is designed based on three phases of transformation. The input is a model specified in terms of a set of behavioral components that interact through a set of high-level synchronization primitives (e.g., rendezvous and broadcasts) and priority rules for scheduling purposes. The first phase transforms the input model into a model that has no priorities. Then, the second phase transforms the deprioritized model into another model that resolves distributed conflicts by incorporating a solution to the committee coordination problem. Finally, the third phase generates distributed code using asynchronous point-to-point message passing primitives (e.g., TCP sockets). All transformations preserve the properties of their input model by ensuring observational equivalence. All the transformations are implemented and our experiments validate their effectiveness

    Verifying Systems-of-Systems with Statistical Model Checking

    Get PDF
    International audienceVerifying the correctness of systems-of-systems (SoS) is a key challenge, largely because SoSs are evolutionarily developed by combining autonomous systems to fulfill a mission that could not be performed by one of the constituent systems alone. In the trade-off of correctness vs. scalability, model checking does not scale up to address the trustworthiness of SoSs, owing to the state explosion problem. A recent technique, however, has overcome this shortcoming: ‘Statistical Model Checking’ is based on sampling traces of the system-of-interest until adequate statistical evidence has been established

    Automated Distributed Implementation of Component-Based Models with Priorities

    No full text
    International audienceIn this paper, we introduce a novel model-based approach for constructing correct distributed implementation of component-based models constrained by priorities. We argue that model-based methods are especially of interest in the context of distributed embedded system due to their inherent complexity. Our three-phase method's input is a model specified in terms of a set of behavioural components that interact through a set of high-level synchronization primitives (e.g., rendezvous and broadcasts) and priority rules for scheduling purposes. Our technique, first, transforms the input model into a model that has no priorities. Then, it transforms the deprioritized model into another model that resolves distributed conflicts by incorporating a solution to the committee coordination problem. Finally, it generates distributed code using asynchronous point-topoint send/receive primitives. All transformations preserve the properties of their input model by ensuring observational equivalence. The transformations are implemented and our experiments validate their effectiveness
    corecore